//执行分页，生成页面效果，任何时候调用这个函数都会重新加载页面
//获取我们设置的全局变量
function generatePage(){
	
	//1、获取分页数据
	var pageInfo=getPageInfoRemote();

	//2、填充表格
	fillTableBody(pageInfo);
	
}
//远程访问服务器端 获取pageInfo数据
function getPageInfoRemote() {
	
	var pageInfo=null;
	
	var ajsxResult= $.ajax({
		"url":"shengAjax/get/page.ht",
		"type":"post",
		"data":{
			"pageNum":window.pageNum,
			"pageSize":window.pageSize,
			"keyword":window.keyword
		},
		"async":false,		/*改成同步，因为只有成功获取到了数据才能填充表格，异步的话有还没有获取到数据的时候就填充了表格了的风险*/
		"dataType":"json"
	});
	console.log(ajsxResult);
	var statusCode=ajsxResult.status;
	//如果响应状态码不是200
	if(statusCode!=200){
		layer.msg("服务端程序调用失败，响应状态码是"+statusCode+"说明信息是"+ajsxResult.statusText);
		return null;
	}
	//console.log("测试一下如果return后面还会不会执行");//答案是不管前面return了什么后面都不会执行了
	
	//如果响应状态码是200就往下走，说明请求处理是成功的，，获取pageInfo
	var resultEntity=ajsxResult.responseJSON;
	
	//从resultEntity中获取result属性
	var result=resultEntity.result;
	
	//判断result是否成功
	if(result=="FAILED"){
		layer.msg(resultEntity.message);
		return null;
	}
	//两方面都排除了，再往下就一定是成功了
	//[代码逻辑]前面都没有问题了，才会执行下面的代码
	var pageInfo=resultEntity.data;
	//返回pageInfo
	return pageInfo;	//这个pageInfo里面当前页码什么的也都有，可在前端一探究竟
	
}
//填充表格
function fillTableBody(pageInfo) {
	//在最前面先清楚旧数据，否则 由于是异步无刷新的方式，数据会一直叠加一直叠加…………
	$("#ShengPageBody").empty();
	
	//判断pageInfo对象是否有效
	if(pageInfo==null || pageInfo==undefined || pageInfo.list==null || pageInfo.list.length==0){
		
		//没数据或者是空数据，反正就是各种可能有的问题
		//这里可以直接在表格把消息填充显示出来了
		$("#ShengPageBody").append("<tr><td colspan='5'>抱歉！没有查询到您要搜索的数据！</td></tr>");
		
		//移除导航页码
		/*
		 * remove()删除选择的元素和子元素
		  empty()只删除选中元素的子元素
		  */
		$("#Pagination").remove();
		
		return;
	}
	//没有进上面的if里面，也就是没有问题了再继续往下走
	
	/*  使用pageInfo的list属性填充tbody */
	for(var i=0; i < pageInfo.list.length;i++){
		
		var sheng=pageInfo.list[i];
		
		/*debugger;*/
		
		var shengid=sheng.shengid;
		var shengName=sheng.shengName;
		var shengCreatetime=sheng.createtime;
		
		/* 每列的数据 */
		var numberTd="<td>"+(i+1)+"</td>";		//第1个<td>
		var checkboxTd="<td><input id='"+shengid+"' class='itemBox' type='checkbox'></td>";//第2个<td>
		var shengNameTd="<td>"+shengName+"</td>";	//第3个<td>
		/*var createDateTime="<td>"+shengCreatetime+"</td>";*///第4个<td>
		//"操作"列下的三个按钮，查看、修改、删除
		var checkBtn ="<button id='"+shengid+"' type='button' class='btn btn-success btn-xs viewBtn'><i class='glyphicon glyphicon-check'></i></button>";
		var pencilBtn="<button id='"+shengid+"' type='button' class='btn btn-primary btn-xs pencilBtn'><i class='glyphicon glyphicon-pencil'></i></button>";
		var removeBtn="<button id='"+shengid+"' type='button' class='btn btn-danger btn-xs removeBtn'><i class='glyphicon glyphicon-remove'></i></button>";
		
		var buttonTd="<td>"+checkBtn+"&nbsp;"+pencilBtn+" "+removeBtn+"</td>";//第5个<td>
		
		//var tr="<tr>"+numberTd+checkboxTd+shengNameTd+createDateTime+buttonTd+"</tr>"
		var tr="<tr>"+numberTd+checkboxTd+shengNameTd+buttonTd+"</tr>"
		
		$("#ShengPageBody").append(tr);
		
	}
	/*console.log("开始填充导航页码了…………");*/
	//数据填充完了，再加载分页页码导航条
	generateNavigator(pageInfo);
}
	
//生成分页 页码导航
function generateNavigator(pageInfo) {
	
	//获取总记录数
	var totalRecord=pageInfo.total;
	
	//声明相关属性（Pagination要设置的属性）
	var properties = {
		num_edge_entries: 3,						// 边缘页数
		num_display_entries: 5,						// 主体页数
		callback: paginationCallBack,				// 指定用户点击“翻页”的按钮时跳转页面的回调函数
		items_per_page: pageInfo.pageSize,			// 每页要显示的数据的数量
		current_page: pageInfo.pageNum - 1,			// Pagination内部使用pageIndex来管理页码，pageIndex从0开始，pageNum从1开始，所以要减一
		prev_text: "上一页",							// 上一页按钮上显示的文本
		next_text: "下一页"							// 下一页按钮上显示的文本
	};
	
	// 生成页码导航条
	$("#Pagination").pagination(totalRecord, properties);
	
}
//翻页时的回调函数（可参考admin-page.jsp的 pageSelectCallback方法 ）
function paginationCallBack(pageIndex, jQuery) {
	
	// 根据pageIndex计算得到pageNum
	window.pageNum = pageIndex + 1;
	
	//调用分页函数
	generatePage();
	
	//异步不需要 跳转页面
	
	// 由于每一个页码按钮都是超链接，所以在这个函数最后取消超链接的默认行为
	return false;
}
//声明专门的函数用于显示确认模态框（删除和批量删除用）
function showConfirmModalNew(shengArray){
	debugger;
	/*打开模态框*/
	$("#confirmModal").modal("show");
	
	//千万别忘记要清楚一下上次打开的旧数据，否则会一直叠加旧数据
	$("#shengNameDiv").empty();
	
	//在全局范围创建数组用来存放角色id
	window.shengidArray=[];
	
	/*遍历shengArray数组*/
	for (var i = 0; i < shengArray.length; i++) {
		
		var sheng = shengArray[i];
		
		var shengName = sheng.shengName;
		var shengid=sheng.shengid;
		
		$("#shengNameDiv").append(shengName+"<br/>")

		//调用数组对象的push()方法存入新元素
		window.shengidArray.push(shengid);
	}
}
//声明专门的函数用于打开编辑/修改的模态框
function showEditModal(shengName,shengid){
	/*打开模态框*/
	$("#editModal").modal("show");
	
	var shengName = shengName;
	
	//设置值
	/*$("#shengName").append(shengName+"<br/>")*/
	$("#shengName").val(shengName);
	
	window.shengid=shengid;
	window.shengName=shengName;
	
}
//声明专门的函数用于打开 查看 的 模态框
function showViewModal(shengName,shengid){
	
	var shengName = shengName;
	debugger;
	/*打开模态框*/
	$("#viewModal").modal("show");
	//设置值
	var beforVal=$("#shengNameView").val();
	
	$("#shengNameView").val(shengName);
}
//声明专门的函数用于打开  查看 的 模态框
function showshengNameViewModal(shengName,shengid){
	
	var shengName = shengName;
	debugger;
	/*打开模态框*/
	$("#viewModal").modal("show");
	//设置值
	var beforVal=$("#shengNameView").val();
	
	$("#shengNameView").val(shengName);
}



























